package com.ruoyi.pachong;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import com.ruoyi.common.utils.SecurityUtils;

/**
 * Hello world!
 *
 */
public class App 
{
    public static void main( String[] args )
    {
        System.out.println( "Hello World!" );
        HubTask ht = new HubTask();
        //ht.pNews();
//        String psss = SecurityUtils.encryptPassword("706db0908a0a881cca90fbc72a53c795");
//        boolean bbbb = SecurityUtils.matchesPassword("706db0908a0a881cca90fbc72a53c795", "$2a$10$SArTDZJq/EyxJq1Ftgu6jOwapFSpxE7N1gA/w9MmPntCU9Hg78hCq");
//        System.out.println(psss+"---"+bbbb);
//        
//        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
//        
//        System.out.println(passwordEncoder.encode("0192023a7bbd73250516f069df18b500"));
//        boolean b = passwordEncoder.matches("0192023a7bbd73250516f069df18b500", "$10$KlPm9ssoe2y.ruAKxuWviOlb17UaD./E4WzNYTsFsPYxwk7My.oEy");
//        
//        System.setProperty("webdriver.chrome.driver", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
//        
//      //新增一个预操作对象
//        ChromeOptions options =new ChromeOptions();
//        //删除提示栏
//        //options.addArguments("disable-infobars");
//
//        // 设置后台静默模式启动浏览器
//        options.addArguments("--headless");
//        options.addArguments("--no-sandbox");
////        options.addArguments("--disable-gpu");
////        options.addArguments("--disable-dev-shm-usage");        
//        options.addArguments("--window-size=1920,1050");
//        
//        Map<String, Object> prefs = new HashMap<String, Object>();
//        //禁止弹出通知
//        prefs.put("profile.default_content_setting_values.notifications", 2);
//
//        //禁止加载图片
//        prefs.put("profile.managed_default_content_settings.images", 2);
//
//        //禁止加载css
//        prefs.put("permissions.default.stylesheet", 2);
//
//        //options.setExperimentalOption("prefs", prefs);
//        
//        //options.addArguments("user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36");
//        
//        WebDriver driver = new ChromeDriver(options);
//        
//        driver.manage().window().maximize();
//        driver.get("https://tophub.today/");
//        //获取所有类目div
//        List<WebElement> allels =  driver.findElements(By.id("Sortable"));
//        
//        System.out.println("共有行数："+allels.size());
//        List<NeiRong> leimulist = new ArrayList<NeiRong>();
//        //遍历每一行  div代表一行类目
//        for(WebElement div : allels) {
//        	//遍历每一个类目内部div，lanmudiv代表一个类目
//        	
//        	
//        	List<WebElement> yihanggeshudivs = div.findElements(By.cssSelector("div.cc-cd"));
//        	for(WebElement lanmudiv : yihanggeshudivs) {
//        		System.out.println("一行内类目个数："+yihanggeshudivs.size());
//        		//遍历一个类目的内容 neirongdiv代表类目的各部分内容div   
//        		List<WebElement> div3 = lanmudiv.findElement(By.tagName("div")).findElements(By.xpath("div"));
//        		
//        		System.out.println("类目内容："+div3.size());
//        		
//        		String leimu = div3.get(0).findElement(By.tagName("span")).getText();
//        		NeiRong nr = new NeiRong();
//        		System.out.println("类目："+leimu);
//        		nr.setLeimu(leimu);
//        		List<WebElement> els = div3.get(1).findElement(By.tagName("div")).findElements(By.xpath("a"));
//        		
//        		
//        		List<NeiRong> neironglist = new ArrayList<NeiRong>();
//        		for(WebElement wel : els) {
//        			NeiRong nrow = new NeiRong();
//                	String href = wel.getAttribute("href");
//                	//System.out.println("链接："+href);
//                	nrow.setUrl(href);
//                	List<WebElement> spans = wel.findElements(By.tagName("span"));
//                	nrow.setIndexNum(spans.get(0).getText());
//                	nrow.setTitle(spans.get(1).getText());
//                	nrow.setRedu(spans.get(2).getText());
//                	neironglist.add(nrow);
//                	nr.setNeironglist(neironglist);
//                	
//                }
//        		
//        		leimulist.add(nr);
//        		
//        	}
//        	
//        	
//        	//System.out.println(leimulist.size());	
//        	
//        	
//        	
//        }
//        System.out.println(leimulist.size());	
//      //关闭浏览器
//        driver.close();
//        driver.quit();
//        
//        
        
        

        
    }
    
    public void test() {
    	System.out.println("pachong  hello!");
    }
    
    private WebDriver createWebDriver(){
        //新增一个预操作对象
        ChromeOptions options =new ChromeOptions();
        //删除提示栏
        options.addArguments("disable-infobars");

        // 设置后台静默模式启动浏览器
        options.addArguments("--headless");
        options.addArguments("--no-sandbox");
        options.addArguments("--disable-gpu");
        options.addArguments("--disable-dev-shm-usage");

        //无痕模式
        options.addArguments("--incognito");

        //使用代理
        options.addArguments("–proxy-server=http://ip:端口");

        //设置header，以user-agent为例
        options.addArguments("user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36");

        Map<String, Object> prefs = new HashMap<String, Object>();
        //禁止弹出通知
        prefs.put("profile.default_content_setting_values.notifications", 2);

        //禁止加载图片
        prefs.put("profile.managed_default_content_settings.images", 2);

        //禁止加载css
        prefs.put("permissions.default.stylesheet", 2);

        options.setExperimentalOption("prefs", prefs);

        System.setProperty("webdriver.chrome.driver", "/usr/local/chromedriver");

        WebDriver webDriver = new ChromeDriver(options);

        //全屏
        webDriver.manage().window().maximize();

        //删除所有cookie
        webDriver.manage().deleteAllCookies();

        //设置全局等待时间：等待10秒如果某元素还未出现，操作时该元素会报错
        webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        return webDriver;
    }
    
}
